package com.ptr.ptrsystem.dao;

/**
 *
 * @author pavel
 */
import com.ptr.controladores.conexionsqlserver;
import java.sql.*;

public class Insertar {

    public Insertar() {
    }
    String query = null;
    Connection conn = null;
    CallableStatement st;
    conexionsqlserver base = new conexionsqlserver();
    PreparedStatement ps = null;

    public boolean InsertaEstado(String COD_ESTADO, String NOM_ESTADO) {
        boolean valor = false;
        try {
            base.conectar();
            conn = base.getconection();
            st = conn.prepareCall("{call sp_InsertaEstado(?,?)}");
            st.setString(1, COD_ESTADO.toUpperCase());
            st.setString(2, NOM_ESTADO.toUpperCase());
            int fila = st.executeUpdate();
            if (fila >= 1) {
                valor = true;
            }
            st.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException err) {
            System.out.println("Error al registrar el estado(*" + err.getMessage() + "*)");
        }
        return valor;
    }

    public boolean InsertaTipoVinculo(String COD_VINCULO, String NOM_VINCULO, String DET_VINCULO) {
        boolean vinculo = false;
        try {
            base.conectar();
            conn = base.getconection();
            st = conn.prepareCall("{call SP_AGREGAVINCULO(?,?,?)}");
            st.setString(1, COD_VINCULO.toUpperCase());
            st.setString(2, NOM_VINCULO.toUpperCase());
            st.setString(3, DET_VINCULO.toUpperCase());
            int vin = st.executeUpdate();
            if (vin >= 1) {
                vinculo = true;
            }
            st.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException v) {
            System.err.println("Error al registrar Vinculo(*" + v.getMessage() + "*)");
        }
        return vinculo;
    }

    public boolean InsertaTipoDocumento(String COD_T_DOC, String NOM_T_DOC) {
        boolean tdoc = false;
        try {
            base.conectar();
            conn = base.getconection();
            st = conn.prepareCall("{call SP_AGREGATIPODOCUMENTO(?,?)}");
            st.setString(1, COD_T_DOC.toUpperCase());
            st.setString(2, NOM_T_DOC.toUpperCase());
            int vin = st.executeUpdate();
            if (vin >= 1) {
                tdoc = true;
            }
            st.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException v) {
            System.err.println("Error al registrar Vinculo(*" + v.getMessage() + "*)");
        }
        return tdoc;
    }

    public boolean InsertaTipoNacionalidad(String COD_NACIONALIDAD, String NOM_NACIONALIDAD) {
        boolean nacionalidad = false;
        try {
            base.conectar();
            conn = base.getconection();
            st = conn.prepareCall("{call SP_AGREGATNACIONALIDAD(?,?)}");
            st.setString(1, COD_NACIONALIDAD.toUpperCase());
            st.setString(2, NOM_NACIONALIDAD.toUpperCase());
            int nac = st.executeUpdate();
            if (nac >= 1) {
                nacionalidad = true;
            }
            st.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException v) {
            System.err.println("Error al registrar Nacionalidad(*" + v.getMessage() + "*)");
        }
        return nacionalidad;
    }

    public boolean InsertaCargo(String COD_CARGO, String NOM_CARGO) {
        boolean cargo = false;
        try {
            base.conectar();
            conn = base.getconection();
            st = conn.prepareCall("{call SP_AGREGATIPOCARGO(?,?)}");
            st.setString(1, COD_CARGO.toUpperCase());
            st.setString(2, NOM_CARGO.toUpperCase());
            int nac = st.executeUpdate();
            if (nac >= 1) {
                cargo = true;
            }
            st.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException v) {
            System.err.println("Error al registrar Cargo(*" + v.getMessage() + "*)");
        }
        return cargo;
    }

    public boolean InsertaTipoDireccion(String COD_DIR, String NOM_TIPO_DIR) {
        boolean tdir = false;
        try {
            base.conectar();
            conn = base.getconection();
            st = conn.prepareCall("{call SP_AGREGATIPODIRECCION(?,?)}");
            st.setString(1, COD_DIR.toUpperCase());
            st.setString(2, NOM_TIPO_DIR.toUpperCase());
            int nac = st.executeUpdate();
            if (nac >= 1) {
                tdir = true;
            }
            st.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException v) {
            System.err.println("Error al registrar Tipo de Documento(*" + v.getMessage() + "*)");
        }
        return tdir;
    }

    public boolean InsertaTipoEstadoPersona(String COD_ESTADO_PERS, String NOM_ESTADO_PERS) {
        boolean tepers = false;
        try {
            base.conectar();
            conn = base.getconection();
            st = conn.prepareCall("{call SP_AGREGATIPOESTADPERSONA(?,?)}");
            st.setString(1, COD_ESTADO_PERS.toUpperCase());
            st.setString(2, NOM_ESTADO_PERS.toUpperCase());
            int nac = st.executeUpdate();
            if (nac >= 1) {
                tepers = true;
            }
            st.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException v) {
            System.err.println("Error al registrar Estado Persona(*" + v.getMessage() + "*)");
        }
        return tepers;
    }

    public boolean InsertaUbigeo(String IDUBIGEO, String IDUBIGEODEP,
            String IDUBIGEOPROV, String IDUBIGEODIST, String IDUBIGEOOTRO,
            String NOMUBIGEODEP, String NOMUBIGEOPROV, String NOMUBIGEOSDIST,
            String NOMUBIGEOOTRO) {
        boolean tepers = false;
        try {
            base.conectar();
            conn = base.getconection();
            st = conn.prepareCall("{call SP_AGREGAUBIGEO(?,?,?,?,?,?,?,?,?)}");
            st.setString(1, IDUBIGEO.toUpperCase());
            st.setString(2, IDUBIGEODEP.toUpperCase());
            st.setString(3, IDUBIGEOPROV.toUpperCase());
            st.setString(4, IDUBIGEODIST.toUpperCase());
            st.setString(5, IDUBIGEOOTRO.toUpperCase());
            st.setString(6, NOMUBIGEODEP.toUpperCase());
            st.setString(7, NOMUBIGEOPROV.toUpperCase());
            st.setString(8, NOMUBIGEOSDIST.toUpperCase());
            st.setString(9, NOMUBIGEOOTRO.toUpperCase());
            int nac = st.executeUpdate();
            if (nac >= 1) {
                tepers = true;
            }
            st.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException v) {
            System.err.println("Error al registrar Ubigeo(*" + v.getMessage() + "*)");
        }
        return tepers;
    }

    public boolean InsertaPersona(String CUI_PERS, String NRO_ACTA_PERS, String NRO_LIBRO_ACTA_NAC,
            String PRIM_APE_PERS, String SEG_APE_PERS, String APE_CASADA, String PRE_NOM_PERS, String IDUBIGEO_DOMICI,
            String COD_DIR, String DIR_PERS, String NRO_DIR, String GEN_PERS, String FOTO_PERSONA, String TELEF_1, String TELEF_2,
            String EST_CIVIL_PERS, String COD_NACIONALIDAD, String IDUBIGEO, String COD_ESTADO_PERS, String COD_CARGO) {
        boolean pers = false;
        try {
            base.conectar();
            conn = base.getconection();
            st = conn.prepareCall("{call SP_REGUSUARIO (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
            st.setString(1, CUI_PERS);
            st.setString(2, NRO_ACTA_PERS);
            st.setString(3, NRO_LIBRO_ACTA_NAC);
            st.setString(4, PRIM_APE_PERS.toUpperCase());
            st.setString(5, SEG_APE_PERS.toUpperCase());
            st.setString(6, APE_CASADA.toUpperCase());
            st.setString(7, PRE_NOM_PERS.toUpperCase());
            st.setString(8, IDUBIGEO_DOMICI);
            st.setString(9, COD_DIR.toUpperCase());
            st.setString(10, DIR_PERS.toUpperCase());
            st.setString(11, NRO_DIR);
            st.setString(12, GEN_PERS.toUpperCase());
            st.setString(13, FOTO_PERSONA);
            st.setString(14, TELEF_1);
            st.setString(15, TELEF_2);
            st.setString(16, EST_CIVIL_PERS.toUpperCase());
            st.setString(17, COD_NACIONALIDAD);
            st.setString(18, IDUBIGEO);
            st.setString(19, COD_ESTADO_PERS);
            st.setString(20, COD_CARGO);
            int p = st.executeUpdate();
            if (p >= 1) {
                pers = true;
            }
            st.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException pe) {
            System.err.println("Error al registrar la Persona(*" + pe.getMessage() + "*)");
        }
        return pers;
    }

    public boolean InsertaDefuncion(String COD_PERSONA, String NRO_ACTA_CDEF, String NRO_LIBRO, String FECHA_REG_DEF,
            String IDUBIGEO, String COD_LUGAR_OCURR, String FECHA_DEF, String HORA_DEF, String DNI_MADRE,
            String DNI_PADRE, String DNI_DECLARANTE, String DNI_PERS_REG, String COD_ESTADO,
            String COD_T_DOC, String OBSERVACIONES, String RUTA_ACTA_DEF,String RUTA_ACTA_DEF2) {
        boolean regDef = false;
        try {
            base.conectar();
            conn = base.getconection();

            ps = conn.prepareStatement("insert into TB_DEFUNCION values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
            // st = conn.prepareCall("{call SP_FALTA-CREAR-PROCEDIMIENTO(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
            ps.setString(1, COD_PERSONA.toUpperCase());
            ps.setString(2, NRO_ACTA_CDEF.toUpperCase());
            ps.setString(3, NRO_LIBRO);
            ps.setString(4, FECHA_REG_DEF.toUpperCase());
            ps.setString(5, IDUBIGEO.toUpperCase());
            ps.setString(6, COD_LUGAR_OCURR.toUpperCase());
            ps.setString(7, FECHA_DEF.toUpperCase());
            ps.setString(8, HORA_DEF.toUpperCase());
            ps.setString(9, DNI_MADRE.toUpperCase());
            ps.setString(10, DNI_PADRE.toUpperCase());
            ps.setString(11, DNI_DECLARANTE.toUpperCase());
            ps.setString(12, DNI_PERS_REG.toUpperCase());
            ps.setString(13, COD_ESTADO.toUpperCase());
            ps.setString(14, COD_T_DOC.toUpperCase());
            ps.setString(15, OBSERVACIONES.toUpperCase());
            ps.setString(16, RUTA_ACTA_DEF.toUpperCase());
            ps.setString(17, RUTA_ACTA_DEF2.toUpperCase());
            int r = ps.executeUpdate();
            if (r > 0) {
                regDef = true;
            }
            ps.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException de) {
            System.err.println("Error al registrar Defuncion(*" + de.getMessage() + "*)");
        }
        return regDef;
    }

    public boolean InsertaMatrimonio(String COD_PERSONA, String NRO_ACTA_MAT, String NRO_LIBRO, String FECHA_REG_MAT,
            String IDUBIGEO_MAT, String DNI_PERS_1, String DNI_PERS_2, String DNI_TESTIGO_1, String DNI_TESTIGO_2,
            String DNI_REGISTRADOR, String COD_ESTADO, String IDUBIGEO, String COD_NACIONALIDAD, String RUTA_ACTA_MAT, String RUTA_ACTA_MAT2) {
        boolean regDef = false;
        try {
            base.conectar();
            conn = base.getconection();

            ps = conn.prepareStatement("insert into TB_MATRIMONIO values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
            // st = conn.prepareCall("{call SP_FALTA-CREAR-PROCEDIMIENTO(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
            ps.setString(1, COD_PERSONA.toUpperCase());
            ps.setString(2, NRO_ACTA_MAT.toUpperCase());
            ps.setString(3, NRO_LIBRO);
            ps.setString(4, FECHA_REG_MAT.toUpperCase());
            ps.setString(5, IDUBIGEO_MAT.toUpperCase());
            ps.setString(6, DNI_PERS_1.toUpperCase());
            ps.setString(7, DNI_PERS_2.toUpperCase());
            ps.setString(8, DNI_TESTIGO_1.toUpperCase());
            ps.setString(9, DNI_TESTIGO_2.toUpperCase());
            ps.setString(10, DNI_REGISTRADOR.toUpperCase());
            ps.setString(11, COD_ESTADO.toUpperCase());
            ps.setString(12, IDUBIGEO.toUpperCase());
            ps.setString(13, COD_NACIONALIDAD.toUpperCase());
            ps.setString(14, RUTA_ACTA_MAT);
            ps.setString(15, RUTA_ACTA_MAT2);

            int r = ps.executeUpdate();
            if (r > 0) {
                regDef = true;
            }
            ps.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException de) {
            System.err.println("Error al registrar Defuncion(*" + de.getMessage() + "*)");
        }
        return regDef;
    }
//-------------------------------------------------------------------

    public boolean InsertaLugarOcurrencia(String COD_LUGAR_OCURRENCIA, String NOM_CEN_LUG_OCU) {
        boolean locu = false;
        try {
            base.conectar();
            conn = base.getconection();
            st = conn.prepareCall("{call SP_AGREGALUGAROCURRENCIA(?,?)}");
            st.setString(1, COD_LUGAR_OCURRENCIA);
            st.setString(2, NOM_CEN_LUG_OCU.toUpperCase());
            int lo = st.executeUpdate();
            if (lo > 0) {
                locu = true;
            }
            st.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException v) {
            System.err.println("Error al registrar Lugar de Ocurrencia(*" + v.getMessage() + "*)");
        }
        return locu;
    }

    public boolean InsertaNacimiento(
            String CUI_PERS, String NRO_ACTA_PERS,
            String NRO_LIBRO, String FECHA_REG_ACTA,
            String IDUBIGEONAC, String IDUBIGEOREG,
            String HORA_NACI, String MINUTO_NACI,
            String SEGUN_NACI, String FECHA_NACIMIENTO,
            String COD_TIPO_DOCM, String DNI_MADRE,
            String EDAD_MADRE, String COD_NACIONALIDADM,
            String NATURALMADRE, String COD_T_DOCP,
            String DNI_PADRE, String EDAD_PADRE,
            String COD_NACIONALIDADP, String NATURALPADRE,
            String DNI_DECLARANTE_1, String COD_VINCULO1,
            String T_DOC_D1, String DNI_DECLARANTE_2,
            String COD_VINCULO2, String T_DOC_D2,
            String DNI_REGISTRADOR, String COD_LUGAR_OCURR,
            String COD_ESTADO, String OBSERVACIONES,
            String RUTA_ACTA_NAC) {
        boolean regNaci = false;
        try {
            base.conectar();
            conn = base.getconection();
            st = conn.prepareCall("{call SP_AGREGAACTANACIMIENTO (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
            st.setString(1, CUI_PERS.trim());
            st.setString(2, NRO_ACTA_PERS.trim());
            st.setString(3, NRO_LIBRO.trim());
            st.setString(4, FECHA_REG_ACTA.trim());
            st.setString(5, IDUBIGEONAC);
            st.setString(6, IDUBIGEOREG);
            st.setString(7, HORA_NACI.trim());
            st.setString(8, MINUTO_NACI.trim());
            st.setString(9, SEGUN_NACI.trim());
            st.setString(10, FECHA_NACIMIENTO.trim());
            st.setString(11, COD_TIPO_DOCM.trim());
            st.setString(12, DNI_MADRE.trim());
            st.setString(13, EDAD_MADRE.trim());
            st.setString(14, COD_NACIONALIDADM.trim());
            st.setString(15, NATURALMADRE.toUpperCase());
            st.setString(16, COD_T_DOCP.trim());
            st.setString(17, DNI_PADRE.trim());
            st.setString(18, EDAD_PADRE.trim());
            st.setString(19, COD_NACIONALIDADP.trim());
            st.setString(20, NATURALPADRE.toUpperCase());
            st.setString(21, DNI_DECLARANTE_1.trim());
            st.setString(22, COD_VINCULO1.trim());
            st.setString(23, T_DOC_D1.trim());
            st.setString(24, DNI_DECLARANTE_2.trim());
            st.setString(25, COD_VINCULO2.trim());
            st.setString(26, T_DOC_D2.trim());
            st.setString(27, DNI_REGISTRADOR.trim());
            st.setString(28, COD_LUGAR_OCURR.trim());
            st.setString(29, COD_ESTADO.toUpperCase());
            st.setString(30, OBSERVACIONES.toUpperCase());
            st.setString(31, RUTA_ACTA_NAC.trim());
            int r = st.executeUpdate();
            if (r > 0) {
                regNaci = true;
            }
            st.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException na) {
            System.err.println("Error al registrar Nacimiento(*" + na.getMessage() + "*)");
        }
        return regNaci;
    }
}